Micron Document
🎖️GitЯра🎖️

Node / meshcore / MeshCore / files / examples / simple_sensor / TimeSeriesData.cpp

Displaying Raw • Download

examples/simple_sensor/TimeSeriesData.cpp HEAD (0679dbef) Text, 1.33 KB

Tff7b72#Tff7b72include T8b949e"TimeSeriesData.h"

Tffa657void Td2a8ffTimeSeriesData::recordDataTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3RTCClockTff7b72* Te6edf3clockTb4b4b4, Tffa657float Te6edf3valueTb4b4b4) Tb4b4b4{
Tffa657uint32_t Te6edf3now Tff7b72= Te6edf3clockTff7b72-Tff7b72>Te6edf3getCurrentTimeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3now Tff7b72>Tff7b72= Te6edf3last_timestamp Tff7b72+ Te6edf3interval_secsTb4b4b4) Tb4b4b4{
Te6edf3last_timestamp Tff7b72= Te6edf3nowTb4b4b4;

Te6edf3dataTb4b4b4[Te6edf3nextTb4b4b4] Tff7b72= Te6edf3valueTb4b4b4; T8b949e// append to cycle table
Te6edf3next Tff7b72= Tb4b4b4(Te6edf3next Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72% Te6edf3num_slotsTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tffa657void Td2a8ffTimeSeriesData::calcMinMaxAvgTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3RTCClockTff7b72* Te6edf3clockTb4b4b4, Tffa657uint32_t Te6edf3start_secs_agoTb4b4b4, Tffa657uint32_t Te6edf3end_secs_agoTb4b4b4, Te6edf3MinMaxAvgTff7b72* Te6edf3destTb4b4b4, Tffa657uint8_t Te6edf3channelTb4b4b4, Tffa657uint8_t Te6edf3lpp_typeTb4b4b4) Tff7b72const Tb4b4b4{
Tffa657int Te6edf3i Tff7b72= Te6edf3nextTb4b4b4, Te6edf3n Tff7b72= Te6edf3num_slotsTb4b4b4;
Tffa657uint32_t Te6edf3ago Tff7b72= Te6edf3clockTff7b72-Tff7b72>Te6edf3getCurrentTimeTb4b4b4(Tb4b4b4) Tff7b72- Te6edf3last_timestampTb4b4b4;
Tffa657int Te6edf3num_values Tff7b72= T79c0ff0Tb4b4b4;
Tffa657float Te6edf3total Tff7b72= T79c0ff0.0fTb4b4b4;

Te6edf3destTff7b72-Tff7b72>Te6edf3_channel Tff7b72= Te6edf3channelTb4b4b4;
Te6edf3destTff7b72-Tff7b72>Te6edf3_lpp_type Tff7b72= Te6edf3lpp_typeTb4b4b4;

T8b949e// start at most recet recording, back-track through to oldest
Tff7b72while Tb4b4b4(Te6edf3n Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3nTff7b72-Tff7b72-Tb4b4b4;
Te6edf3i Tff7b72= Tb4b4b4(Te6edf3i Tff7b72+ Te6edf3num_slots Tff7b72- T79c0ff1Tb4b4b4) Tff7b72% Te6edf3num_slotsTb4b4b4; T8b949e// go back by one
Tff7b72if Tb4b4b4(Te6edf3ago Tff7b72>Tff7b72= Te6edf3end_secs_ago Tff7b72&Tff7b72& Te6edf3ago Tff7b72< Te6edf3start_secs_agoTb4b4b4) Tb4b4b4{ T8b949e// filter by the desired time range
Tffa657float Te6edf3v Tff7b72= Te6edf3dataTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Te6edf3num_valuesTff7b72+Tff7b72+Tb4b4b4;
Te6edf3total Tff7b72+Tff7b72= Te6edf3vTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3num_values Tff7b72=Tff7b72= T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3destTff7b72-Tff7b72>Te6edf3_max Tff7b72= Te6edf3destTff7b72-Tff7b72>Te6edf3_min Tff7b72= Te6edf3vTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3v Tff7b72< Te6edf3destTff7b72-Tff7b72>Te6edf3_minTb4b4b4) Te6edf3destTff7b72-Tff7b72>Te6edf3_min Tff7b72= Te6edf3vTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3v Tff7b72> Te6edf3destTff7b72-Tff7b72>Te6edf3_maxTb4b4b4) Te6edf3destTff7b72-Tff7b72>Te6edf3_max Tff7b72= Te6edf3vTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3ago Tff7b72+Tff7b72= Te6edf3interval_secsTb4b4b4;
Tb4b4b4}
T8b949e// calc average
Tff7b72if Tb4b4b4(Te6edf3num_values Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3destTff7b72-Tff7b72>Te6edf3_avg Tff7b72= Te6edf3total Tff7b72/ Te6edf3num_valuesTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3destTff7b72-Tff7b72>Te6edf3_max Tff7b72= Te6edf3destTff7b72-Tff7b72>Te6edf3_min Tff7b72= Te6edf3destTff7b72-Tff7b72>Te6edf3_avg Tff7b72= Te6edf3NANTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.05s